/**
 * @description 表格配置
 * @param 其余参数参考elementPlus table
 * @param {String} type 类型：input输入框，select下拉框，number数字，date时间
 * @param {Boolean} required 是否必填，默认false
 * @param {Array} option 下拉选项，选择器和树结构需要
 * @param {Object} optionConfig 下拉选项对象集合，在组件中传入{xxx: []}
 * @param {Boolean|String} disabled 为字符串时，disabledConfig和disabledKeys必须存在一个，如果都存在则互相对比，相同值则禁用
 * @param {String} disabledKeys 禁用对比字段：转递当前行需要对比字段key
 * @param {Object} disabledConfig 在组件中传入的disabledConfig对象，用于对比disabledKeys或其他值
 * @param {String} slotName 自定义插槽名称
 * @param {String} slotForm 自定义插槽名称，el-form-item标签包裹
 */

// form/query配置，使用的key作为唯一，表格是prop
export const form = [
  {
    key: "name",
    label: "用户名",
    type: "input",
  },
  {
    key: "age",
    label: "年龄",
    type: "number",
  },
  {
    key: "select",
    label: "选择器",
    type: "select",
    option: [{ id: 1, label: "天河区" }],
  },
  {
    key: "selectSearch",
    label: "搜索选择器",
    type: "select",
    filterable: true,
    option: [{ id: 1, label: "白云区" }],
  },
  {
    key: "cascader",
    label: "级联选择器",
    type: "cascader",
    option: [{ id: 1, label: "白云区" }],
  },
  {
    key: "date",
    label: "时间",
    type: "date",
  },
  {
    key: "daterange",
    label: "日期区间",
    type: "daterange",
    col: 12,
    params: ["start", "end"],
  },
  {
    key: "customize",
    label: "自定义",
    slotName: "customize",
  },
];

// 分页
export const table = {
  propList: [
    {
      label: "用户名",
      prop: "name",
      render: ({ row, item }) => `<span>${row[item.prop]}</span>`,
      renderConfig: {
        class: "text", // 可以书写根标签属性
      },
    },
    {
      label: "年龄",
      prop: "age",
      render: ({ row, item }) => `<span>${row[item.prop]}岁</span>`,
      renderConfig: {
        class: "text", // 可以书写根标签属性
      },
    },
    {
      label: "选择器",
      prop: "select",
    },
    {
      label: "搜索选择器",
      prop: "selectSearch",
    },
    {
      label: "时间",
      prop: "date",
    },
    {
      label: "附件",
      prop: "image",
      slotName: "image",
    },
    {
      label: "操作",
      prop: "operate",
      slotName: "operate",
      fixed: "right",
    },
  ],
  // 序号
  showIndex: true,
  // 复选框
  showSelect: false,
  // 分页
  showFooter: true,
  // 是否固定序号/复选框
  showFixed: false,
};
